package ltd.dao.base;

import java.io.Serializable;

import javax.annotation.Resource;

import org.hibernate.SessionFactory;
import org.springframework.beans.factory.annotation.Autowired;

import com.googlecode.genericdao.dao.hibernate.GenericDAOImpl;

/**
 * 主要是注入sessionFactory给hibernate-generic-dao
 */
public class BaseDAO<T, ID extends Serializable> extends GenericDAOImpl<T, ID> {
//	@Resource装配顺序 
//	　 (1). 如果同时指定了name和type，则从Spring上下文中找到唯一匹配的bean进行装配，找不到则抛出异常;
//	　 (2). 如果指定了name，则从上下文中查找名称（id）匹配的bean进行装配，找不到则抛出异常;
//	　 (3). 如果指定了type，则从上下文中找到类型匹配的唯一bean进行装配，找不到或者找到多个，都会抛出异常;
//	　 (4). 如果既没有指定name，又没有指定type，则自动按照byName方式进行装配；如果没有匹配，则回退为一个原始类型进行匹配，如果匹配则自动装配；
//	  @Resource的作用相当于@Autowired，只不过@Autowired按byType自动注入。
	@Resource SessionFactory sessionFactory;
	
    @Autowired
    @Override
    public void setSessionFactory(SessionFactory sessionFactory) {
    	System.out.println(this.sessionFactory);
		//System.out.println(this.sessionFactory.getCurrentSession());
		super.setSessionFactory(this.sessionFactory);
    }
}
